package com.ynet.middleground.contract.dto;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author liulx
 * @description 模板参数信息传输对象
 * @date 2020-03-18 21:36
 */
@Data
@ApiModel(value = "模板参数信息传输对象", description = "模板参数信息传输对象")
public class TemplateParamDTO implements Serializable {

    private static final long serialVersionUID = 3864850075868320967L;

    /**
     * 参数 id
     */
    @ApiModelProperty(value = "参数 id", notes = "参数 id", dataType = "Integer")
    private Integer id;

    /**
     * 模板 id
     */
    @ApiModelProperty(value = "模板 id", notes = "模板 id", dataType = "Integer")
    private Integer templateId;

    /**
     * 参数类型 0：普通文本，1：图片，2：表格，3：合约编号二维码，4：合约编号
     */
    @ApiModelProperty(value = "参数类型 0：普通文本，1：图片，2：表格，3：合约编号二维码，4：合约编号",
        notes = "参数类型 0：普通文本，1：图片，2：表格，3：合约编号二维码，4：合约编号", dataType = "String")
    private String type;

    /**
     * 参数名
     */
    @ApiModelProperty(value = "参数名", notes = "参数名", dataType = "String")
    private String paramName;

    /**
     * 描述
     */
    @ApiModelProperty(value = "描述", notes = "描述", dataType = "String")
    private String description;

    /**
     * 是否公用 true: 公用，false: 非公用 默认 false
     */
    @ApiModelProperty(value = "是否公用 true: 公用，false: 非公用 默认 false", notes = "是否公用 true: 公用，false: 非公用 默认 false",
        dataType = "boolean")
    private Boolean isCommon;

    /**
     * 是否删除 true: 删除，false: 未删除 默认 false
     */
    @ApiModelProperty(value = "是否删除 true: 删除，false: 未删除 默认 false", notes = "是否删除 true: 删除，false: 未删除 默认 false",
        dataType = "boolean")
    private Boolean isDeleted;

    /**
     * 是否必填 true: 必填，false: 非必填 默认 false
     */
    @ApiModelProperty(value = "是否必填 true: 必填，false: 非必填 默认 false", notes = "是否必填 true: 必填，false: 非必填 默认 false",
        dataType = "boolean")
    private Boolean isRequired;

    /**
     * 渠道
     */
    @ApiModelProperty(value = "渠道", notes = "渠道", dataType = "String")
    private String channel;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", notes = "创建时间", dataType = "java.util.Date")
    private LocalDateTime gmtCreate;

    /**
     * 创建者
     */
    @ApiModelProperty(value = "创建者", notes = "创建者", dataType = "String")
    private Integer createBy;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", notes = "更新时间", dataType = "java.util.Date")
    private LocalDateTime gmtModified;

    /**
     * 更新者
     */
    @ApiModelProperty(value = "更新者", notes = "更新者", dataType = "String")
    private Integer modifiedBy;

    /**
     * 业态ID
     */
    @ApiModelProperty(value = "业态ID", notes = "业态ID", dataType = "Integer")
    private Integer formatId;

    /**
     * 表格参数列表
     */
    @ApiModelProperty(value = "表格参数列表", notes = "表格参数列表")
    private List<TemplateTableParamDTO> tableParamList;

}
